/*
 【入门】购买贺年卡
  题目描述
    新年快到了，笑笑打算给他的好朋友们发贺年卡，而且他已经选好了自己要购买的贺卡的样式。
    俗话说得好，货比三家，笑笑来到商店，看了各个商铺这种贺卡的价钱。
    不仅如此，笑笑还记住了每个商铺的存货量。
    已知笑笑打算购买 m 张贺卡，问他最少花多少钱。
  输入
    第一行两个整数 m 和 n。其中 m 表示要购买的贺卡的数量，n 表示商铺的个数。
    以下 n 行，每行两个整数，分别表示该商铺这种贺卡的单价和存货量。
  输出
    仅一个数，表示笑笑花的最少钱数。
  样例输入
    10 4
    4 3
    6 2
    8 10
    3 6
  样例输出
    36
  提示
    数据规模：0 < m, n <= 1000，每个商铺贺卡单价在 1 ~ 100 之间，数量在 1 ~ 1000 之间，
             输入保证商铺的总存货量不少于 m。
*/

#include <bits/stdc++.h>

using namespace std;

struct str {
    int jg;    // 贺卡价格
    int num;   // 贺卡数量
} a[1001];

bool cmp(str j, str k) {
    return j.jg < k.jg;
}

int main() {
    int m;
    int n;

    cin >> m;
    cin >> n;
    for (int i= 1; i <= n; i++) {
        cin >> a[i].jg >> a[i].num;
    }

    // 以贺卡价格从小到大进行排序
    sort(a + 1, a + n + 1, cmp);

    // 从价格低的贺卡开始，从前往后找, 直到找出 m 个贺卡
    int xi = 0;
    for (int i = 1; i <= n; i++) {
        if (a[i].num >= m) {
            cout << xi + m*a[i].jg;
            return 0;
        } else {
            xi = xi + a[i].jg * a[i].num;
            m = m - a[i].num;
        }
    }

    return 0;
}